查看原文
其他

PySimpleGUI: 开发自己第一个软件

大邓 大邓和他的Python 2019-04-26

真正用python语言风格设计的gui库,熟悉python语言的朋友基本上看这么三个例子基本就能看懂PySimpleGUI设计范式。

安装

pip3 install PySimpleGUI

设计gui就像写python代码一样令人得心应手。表单设计步骤:

案例一

step 1 画出gui草图

step 2 将gui分成多个行

step 3 给每部分使用相应的组件

step 4 使用PySimpleGUI设计代码

第一行只是文本提示作用,使用sg.Text

[ sg.Text('Enter a number') ]

第二行有一个输入字段

[ sg.Input() ]

第三行是一个OK按钮

[ sg.OK() ]

现在我们已经将这三行都定义了,那么将这三行定义好的代码放到一个列表中就代表了整个窗口的组织结构。

layout = [ [sg.Text('Enter a Number')],
           [sg.Input()],
           [sg.OK()] ]

完整代码如下

import PySimpleGUI as sg

layout =  [[sg.Text('Enter a Number')],
           [sg.Input()],
           [sg.OK()] ]

with sg.FlexForm('简单的PySimpleGUI设计'as form:
    button, (number,) =form.LayoutAndRead(layout)
    sg.MsgBox(button, number)

案例二-获取文件名

代码如下

import PySimpleGUI as sg


layout = [[sg.Text('Filename')],
          [sg.Input(), sg.FileBrowse()],
          [sg.OK(), sg.Cancel()] ]

with sg.FlexForm('Get filename example'as form:
    button, (number,) =form.LayoutAndRead(layout)
    sg.MsgBox(button, number)

案例三-所有组件

import PySimpleGUI as sg

with sg.FlexForm('Everything bagel', auto_size_text=True, default_element_size=(401)) as form:
    layout = [
        [sg.Text('All graphic widgets in one form!', size=(301), font=("Helvetica"25), text_color='blue')],
        [sg.Text('Here is some text.... and a place to enter text')],
        [sg.InputText()],
        [sg.Checkbox('My first checkbox!'), sg.Checkbox('My second checkbox!', default=True)],
        [sg.Radio('My first Radio!     '"RADIO1", default=True), sg.Radio('My second Radio!'"RADIO1")],
        [sg.Multiline(default_text='This is the default Text shoulsd you decide not to type anything',
                      scale=(210))],
        [sg.InputCombo(['Combobox 1''Combobox 2'], size=(203)),
         sg.Slider(range=(1100), orientation='h', size=(3520), default_value=85)],
        [sg.Listbox(values=['Listbox 1''Listbox 2''Listbox 3'], size=(306)),
         sg.Slider(range=(1100), orientation='v', size=(1020), default_value=25),
         sg.Slider(range=(1100), orientation='v', size=(1020), default_value=75),
         sg.Slider(range=(1100), orientation='v', size=(1020), default_value=10)],
        [sg.Text('_'  * 100, size=(701))],
        [sg.Text('Choose Source and Destination Folders', size=(351))],
        [sg.Text('Source Folder', size=(151), auto_size_text=False, justification='right'), sg.InputText('Source'), sg.FolderBrowse()],
        [sg.Text('Destination Folder', size=(151), auto_size_text=False, justification='right'), sg.InputText('Dest'),
         sg.FolderBrowse()],
        [sg.Submit(), sg.Cancel(), sg.SimpleButton('Customized', button_color=('white''green'))]
         ]

     button, values = form.LayoutAndRead(layout)


往期文章

100G Python学习资料(免费下载)

大邓强力推荐-jupyter notebook使用小技巧

 深度特征合成:自动生成机器学习中的特征

Python 3.7中dataclass的终极指南(一) 

Python 3.7中dataclass的终极指南(二) 

2017年度15个最好的数据科学领域Python库    

使用Pandas更好的做数据科学

[计算消费者的偏好]推荐系统与协同过滤、奇异值分解

机器学习: 识别图片中的数字

应用PCA降维加速模型训练

如何从文本中提取特征信息?

使用sklearn做自然语言处理-1 

使用sklearn做自然语言处理-2

机器学习|八大步骤解决90%的NLP问题    

上百G文本数据集等你来认领|免费领取     

Python圈中的符号计算库-Sympy

Python中处理日期时间库的使用方法 

【视频讲解】Scrapy递归抓取简书用户信息

美团商家信息采集神器 

用chardect库解决网页乱码问题


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存